[INFO] cloning repository https://github.com/lkitching/rlpi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lkitching/rlpi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flkitching%2Frlpi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flkitching%2Frlpi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 572ab7ab702e3d756ffca048a8449c85c217e17d
[INFO] fixing lkitching/rlpi against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flkitching%2Frlpi" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lkitching/rlpi
[INFO] finished tweaking git repo https://github.com/lkitching/rlpi
[INFO] tweaked toml for git repo https://github.com/lkitching/rlpi written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lkitching/rlpi on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lkitching/rlpi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d
[INFO] running `Command { std: "docker" "start" "f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]    Compiling libc v0.2.102
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling memoffset v0.6.4
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking time v0.1.44
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking chrono v0.4.19
[INFO] [stderr]     Checking rlpi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_file_client.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svsem/svsem_mon.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/signals/ouch.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procexec/fork_stdio_buf.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/i6d_ucase_sv.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/syslim/t_sysconf.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/mmap/anon_mmap.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pmsg/pmsg_send.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pipes/pipe_sync.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pgsjc/job_mon.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/time/calendar_time.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/timers/timed_read.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svsem/svsem_setall.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/inotify/demo_inotify.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procexec/fork_file_sharing.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/files/t_umask.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pmsg/pmsg_receive.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/filelock/i_fcntl_locking.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pshm/pshm_write.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procexec/fork_sig_sync.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/timers/real_timer.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/time/strtime.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_send.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procpri/t_setpriority.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/us_xfr_cl.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svsem/svsem_op.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/dirs_links/t_unlink.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/vmem/t_mprotect.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pipes/pipe_ls_wc.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/proc/display_env.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procexec/child_status.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/psem/psem_getvalue.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/threads/strerror_test.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/filelock/t_flock.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/mmap/t_mmap.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pty/script.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/threads/thread_incr.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procexec/t_fork.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pmsg/pmsg_create.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/tty/test_tty_functions.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/threads/thread_multijoin.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/timers/t_nanosleep.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/signals/t_kill.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/signals/t_sigsuspend.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/psem/psem_post.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/ud_ucase_cl.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pipes/fifo_seqnum_client.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pgsjc/orphaned_pgrp_sighup.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/psem/thread_incr_psem.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/signals/intquit.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svshm/svshm_xfr_reader.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/mmap/mmcat.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pgsjc/disc_sighup.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/threads/simple_thread.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/ud_ucase_sv.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pmsg/pmsg_unlink.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svsem/svsem_demo.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/daemons/daemon_sighup.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pipes/popen_glob.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/time/process_time.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_ls.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/threads/thread_cancel.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pgsjc/catch_sighup.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/is_seqnum_sv.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pipes/fifo_seqnum_server.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procexec/exit_handlers.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pshm/pshm_create.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/files/t_stat.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/tty/no_echo.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/time/show_time.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_rm.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/syslim/t_fpathconf.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svshm/svshm_xfr_writer.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procres/rlimit_nproc.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pshm/pshm_read.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/i6d_ucase_cl.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/psem/psem_unlink.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pipes/simple_pipe.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_receive.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/is_seqnum_cl.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sysinfo/t_uname.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/vmem/memlock.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/threads/thread_incr_mutex.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_file_server.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/procexec/t_system.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/fileio/seek_io.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pgsjc/handling_sigtstp.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/proccred/idshow.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/psem/psem_create.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/signals/t_sigaltstack.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/signals/signalfd_sigval.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/tty/demo_sigwinch.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/psem/psem_wait.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_chqbytes.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/sockets/us_xfr_sv.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/files/t_chown.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/svmsg/svmsg_create.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/signals/sig_sender.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pmsg/mq_notify_sig.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pgsjc/t_setsid.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pmsg/pmsg_getattr.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/pshm/pshm_unlink.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/timers/demo_timerfd.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/proc/modify_env.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/xattr/xattr_view.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/dirs_links/t_dirbasename.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.46s
[INFO] [stderr] crater-edition-check: rlpi v0.1.0 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr]     Checking rlpi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/ctype.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/fcntl.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/sys/time.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/unistd.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/time.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/libgen.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdio.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdlib.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/mqueue.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/inet.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/mod.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/sig_receiver.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let cb = sig_handler as extern fn(c_int) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/nonreentrant.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/ctype.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/fcntl.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/sys/time.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/unistd.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/time.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/libgen.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdio.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdlib.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/mqueue.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/inet.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | extern {
[INFO] [stdout]   | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/mod.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | extern {
[INFO] [stdout]    | ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/sig_receiver.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let cb = sig_handler as extern fn(c_int) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/nonreentrant.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_util.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     unsafe {
[INFO] [stdout]    |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 40 |         to_result(s, || unsafe { result.assume_init() }, "pthread_join")
[INFO] [stdout]    |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_util.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     unsafe {
[INFO] [stdout]    |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 40 |         to_result(s, || unsafe { result.assume_init() }, "pthread_join")
[INFO] [stdout]    |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]   --> src/sockets/inet_sockets.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PassiveSocket {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     socket_desc: c_int,
[INFO] [stdout] 92 |     address: addrinfo
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]   --> src/sockets/inet_sockets.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PassiveSocket {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     socket_desc: c_int,
[INFO] [stdout] 92 |     address: addrinfo
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn overflow_stack(call_num: u32) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] ...
[INFO] [stdout] 25 |     overflow_stack(call_num + 1);
[INFO] [stdout]    |     ---------------------------- recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `read`
[INFO] [stdout]  --> src/sockets/is_seqnum_sv.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 |            NI_MAXHOST, getnameinfo, sockaddr, write, read};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/psem/thread_incr_psem.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut td = &mut(*tdp);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `close`
[INFO] [stdout]  --> src/sockets/us_xfr_cl.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 |            STDIN_FILENO, write, size_t, close, exit, EXIT_SUCCESS};
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:42:34
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &mut THREAD_DIED }));
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &raw mut THREAD_DIED }));
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         unsafe { THREADS.push(info); }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:77:36
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &raw mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/intquit.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/intquit.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:52:34
[INFO] [stdout]    |
[INFO] [stdout] 52 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]   --> src/signals/t_sigaltstack.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn overflow_stack(call_num: u32) {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] ...
[INFO] [stdout] 25 |     overflow_stack(call_num + 1);
[INFO] [stdout]    |     ---------------------------- recursive call site
[INFO] [stdout]    |
[INFO] [stdout]    = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]    = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:42:34
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &mut THREAD_DIED }));
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &raw mut THREAD_DIED }));
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         unsafe { THREADS.push(info); }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:77:36
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &raw mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/ouch.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `read`
[INFO] [stdout]  --> src/sockets/is_seqnum_sv.rs:9:54
[INFO] [stdout]   |
[INFO] [stdout] 9 |            NI_MAXHOST, getnameinfo, sockaddr, write, read};
[INFO] [stdout]   |                                                      ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fatal`
[INFO] [stdout]  --> src/sockets/i6d_ucase_sv.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rlpi::error_functions::{err_exit, fatal};
[INFO] [stdout]   |                                       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigsuspend.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/psem/thread_incr_psem.rs:14:13
[INFO] [stdout]    |
[INFO] [stdout] 14 |         let mut td = &mut(*tdp);
[INFO] [stdout]    |             ----^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `sockaddr_in6` does not permit being left uninitialized
[INFO] [stdout]   --> src/sockets/i6d_ucase_sv.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut sv_addr = unsafe { MaybeUninit::<sockaddr_in6>::uninit().assume_init() };
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    this code causes undefined behavior when executed
[INFO] [stdout]    |                                    help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: integers must be initialized
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/procexec/t_fork.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 |         IDATA.store(3, Ordering::SeqCst);
[INFO] [stdout]    |         -----^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         `IDATA` is a interior mutable `const` item of type `Atomic<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const IDATA` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: `#[warn(const_item_interior_mutations)]` on by default
[INFO] [stdout] help: for a shared instance of `IDATA`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout]  9 - const IDATA: AtomicU8 = AtomicU8::new(111);
[INFO] [stdout]  9 + static IDATA: AtomicU8 = AtomicU8::new(111);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `fatal`
[INFO] [stdout]  --> src/sockets/i6d_ucase_sv.rs:8:39
[INFO] [stdout]   |
[INFO] [stdout] 8 | use rlpi::error_functions::{err_exit, fatal};
[INFO] [stdout]   |                                       ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/t_sigsuspend.rs:43:34
[INFO] [stdout]    |
[INFO] [stdout] 43 |         sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                                  ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &mut MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &raw mut MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &mut MUTEX }))
[INFO] [stdout]    |                                      ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &raw mut MUTEX }))
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `sockaddr_in6` does not permit being left uninitialized
[INFO] [stdout]   --> src/sockets/i6d_ucase_sv.rs:20:36
[INFO] [stdout]    |
[INFO] [stdout] 20 |         let mut sv_addr = unsafe { MaybeUninit::<sockaddr_in6>::uninit().assume_init() };
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    this code causes undefined behavior when executed
[INFO] [stdout]    |                                    help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]    |
[INFO] [stdout]    = note: integers must be initialized
[INFO] [stdout]    = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/timers/real_timer.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     START_SEC.store(start.tv_sec, Ordering::SeqCst);
[INFO] [stdout]    |     ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `START_SEC` is a interior mutable `const` item of type `Atomic<i64>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const START_SEC` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: `#[warn(const_item_interior_mutations)]` on by default
[INFO] [stdout] help: for a shared instance of `START_SEC`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 21 - const START_SEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout] 21 + static START_SEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/timers/real_timer.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     START_USEC.store(start.tv_usec, Ordering::SeqCst);
[INFO] [stdout]    |     ----------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `START_USEC` is a interior mutable `const` item of type `Atomic<i64>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const START_USEC` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `START_USEC`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 22 - const START_USEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout] 22 + static START_USEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `fetch_add`
[INFO] [stdout]   --> src/timers/real_timer.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let call_num = CALL_NUM.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                    --------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    `CALL_NUM` is a interior mutable `const` item of type `Atomic<usize>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const CALL_NUM` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `CALL_NUM`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 16 - const CALL_NUM: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout] 16 + static CALL_NUM: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/timers/real_timer.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     GOT_ALARM.store(true, Ordering::SeqCst);
[INFO] [stdout]    |     ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `GOT_ALARM` is a interior mutable `const` item of type `Atomic<bool>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const GOT_ALARM` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `GOT_ALARM`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 17 - const GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout] 17 + static GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]    --> src/timers/real_timer.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 |             GOT_ALARM.store(false, Ordering::SeqCst);
[INFO] [stdout]     |             ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `GOT_ALARM` is a interior mutable `const` item of type `Atomic<bool>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]     = note: only the temporaries and never the original `const GOT_ALARM` will be modified
[INFO] [stdout]     = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `GOT_ALARM`, consider making it a `static` item instead
[INFO] [stdout]     |
[INFO] [stdout]  17 - const GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]  17 + static GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &mut MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &raw mut MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &mut MUTEX }))
[INFO] [stdout]    |                                      ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &raw mut MUTEX }))
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/timers/real_timer.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 |     START_SEC.store(start.tv_sec, Ordering::SeqCst);
[INFO] [stdout]    |     ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `START_SEC` is a interior mutable `const` item of type `Atomic<i64>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const START_SEC` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: `#[warn(const_item_interior_mutations)]` on by default
[INFO] [stdout] help: for a shared instance of `START_SEC`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 21 - const START_SEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout] 21 + static START_SEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/timers/real_timer.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     START_USEC.store(start.tv_usec, Ordering::SeqCst);
[INFO] [stdout]    |     ----------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `START_USEC` is a interior mutable `const` item of type `Atomic<i64>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const START_USEC` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `START_USEC`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 22 - const START_USEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout] 22 + static START_USEC: AtomicI64 = AtomicI64::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `fetch_add`
[INFO] [stdout]   --> src/timers/real_timer.rs:37:20
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let call_num = CALL_NUM.fetch_add(1, Ordering::SeqCst);
[INFO] [stdout]    |                    --------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    `CALL_NUM` is a interior mutable `const` item of type `Atomic<usize>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const CALL_NUM` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `CALL_NUM`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 16 - const CALL_NUM: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout] 16 + static CALL_NUM: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/timers/real_timer.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     GOT_ALARM.store(true, Ordering::SeqCst);
[INFO] [stdout]    |     ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     `GOT_ALARM` is a interior mutable `const` item of type `Atomic<bool>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const GOT_ALARM` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `GOT_ALARM`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout] 17 - const GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout] 17 + static GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]    --> src/timers/real_timer.rs:133:4
[INFO] [stdout]     |
[INFO] [stdout] 133 |             GOT_ALARM.store(false, Ordering::SeqCst);
[INFO] [stdout]     |             ---------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `GOT_ALARM` is a interior mutable `const` item of type `Atomic<bool>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]     = note: only the temporaries and never the original `const GOT_ALARM` will be modified
[INFO] [stdout]     = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout] help: for a shared instance of `GOT_ALARM`, consider making it a `static` item instead
[INFO] [stdout]     |
[INFO] [stdout]  17 - const GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]  17 + static GOT_ALARM: AtomicBool = AtomicBool::new(false);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_cancel.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     if result == unsafe { PTHREAD_CANCELED } {
[INFO] [stdout]    |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_cancel.rs:27:18
[INFO] [stdout]    |
[INFO] [stdout] 27 |     if result == unsafe { PTHREAD_CANCELED } {
[INFO] [stdout]    |                  ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/ouch.rs:13:30
[INFO] [stdout]    |
[INFO] [stdout] 13 |     let cb = (sig_handler as extern fn(c_int)) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `close`
[INFO] [stdout]  --> src/sockets/us_xfr_cl.rs:6:41
[INFO] [stdout]   |
[INFO] [stdout] 6 |            STDIN_FILENO, write, size_t, close, exit, EXIT_SUCCESS};
[INFO] [stdout]   |                                         ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: mutation of an interior mutable `const` item with call to `store`
[INFO] [stdout]   --> src/procexec/t_fork.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 |         IDATA.store(3, Ordering::SeqCst);
[INFO] [stdout]    |         -----^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         `IDATA` is a interior mutable `const` item of type `Atomic<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: each usage of a `const` item creates a new temporary
[INFO] [stdout]    = note: only the temporaries and never the original `const IDATA` will be modified
[INFO] [stdout]    = help: for more details on interior mutability see <https://doc.rust-lang.org/reference/interior-mutability.html>
[INFO] [stdout]    = note: `#[warn(const_item_interior_mutations)]` on by default
[INFO] [stdout] help: for a shared instance of `IDATA`, consider making it a `static` item instead
[INFO] [stdout]    |
[INFO] [stdout]  9 - const IDATA: AtomicU8 = AtomicU8::new(111);
[INFO] [stdout]  9 + static IDATA: AtomicU8 = AtomicU8::new(111);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.13s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr]     Checking rlpi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/libc/mod.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/mqueue.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/libgen.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/sys/time.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/time.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/stdlib.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/unistd.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/inet.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/ctype.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/stdio.rs (1 fix)
[INFO] [stderr]        Fixed src/libc/fcntl.rs (2 fixes)
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/pmsg/mq_notify_sig.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pmsg/pmsg_getattr.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/psem/psem_create.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/us_xfr_sv.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/ud_ucase_cl.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/mmap/t_mmap.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/mmap/mmcat.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procexec/child_status.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/psem/psem_getvalue.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/proc/display_env.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_file_client.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/proccred/idshow.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/files/t_stat.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svsem/svsem_setall.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/dirs_links/t_dirbasename.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/filelock/t_flock.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/psem/thread_incr_psem.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pgsjc/catch_sighup.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pshm/pshm_write.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pgsjc/handling_sigtstp.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sysinfo/t_uname.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/signals/signalfd_sigval.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svsem/svsem_op.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/threads/thread_incr.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/psem/psem_post.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pgsjc/t_setsid.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/is_seqnum_cl.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_create.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/signals/intquit.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procexec/t_system.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_file_server.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/files/t_umask.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/dirs_links/t_unlink.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/mmap/anon_mmap.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pshm/pshm_unlink.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/files/t_chown.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procexec/t_fork.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/threads/strerror_test.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/timers/real_timer.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/time/strtime.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pipes/popen_glob.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pipes/fifo_seqnum_server.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/timers/timed_read.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/ud_ucase_sv.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procexec/exit_handlers.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/proc/modify_env.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/vmem/memlock.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/threads/thread_multijoin.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/threads/simple_thread.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:42:34
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &mut THREAD_DIED }));
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &raw mut THREAD_DIED }));
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         unsafe { THREADS.push(info); }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:77:36
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &raw mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/pmsg/pmsg_unlink.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svshm/svshm_xfr_writer.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/i6d_ucase_sv.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/daemons/daemon_sighup.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/timers/demo_timerfd.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svsem/svsem_mon.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/xattr/xattr_view.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pmsg/pmsg_create.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pgsjc/job_mon.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/tty/demo_sigwinch.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pmsg/pmsg_send.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/filelock/i_fcntl_locking.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/syslim/t_fpathconf.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/tty/test_tty_functions.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/threads/thread_incr_mutex.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_rm.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &mut MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &raw mut MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &mut MUTEX }))
[INFO] [stdout]    |                                      ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &raw mut MUTEX }))
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/psem/psem_unlink.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/signals/t_kill.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/time/show_time.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pgsjc/disc_sighup.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pipes/simple_pipe.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/inotify/demo_inotify.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/timers/t_nanosleep.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/syslim/t_sysconf.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/fileio/seek_io.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/tty/no_echo.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_receive.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/us_xfr_cl.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/i6d_ucase_cl.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/signals/sig_sender.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pipes/fifo_seqnum_client.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:14:36
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &mut MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 14 |         or_die(mutex_lock(unsafe { &raw mut MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_incr_mutex.rs:19:38
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &mut MUTEX }))
[INFO] [stdout]    |                                      ^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 19 |         or_die(mutex_unlock(unsafe { &raw mut MUTEX }))
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/pshm/pshm_create.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pmsg/pmsg_receive.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pshm/pshm_read.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/time/process_time.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procexec/fork_sig_sync.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/signals/ouch.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_ls.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procexec/fork_file_sharing.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/vmem/t_mprotect.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pipes/pipe_sync.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pipes/pipe_ls_wc.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procpri/t_setpriority.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pty/script.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/signals/t_sigaltstack.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_send.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/psem/psem_wait.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/pgsjc/orphaned_pgrp_sighup.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svmsg/svmsg_chqbytes.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procres/rlimit_nproc.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/sockets/is_seqnum_sv.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/procexec/fork_stdio_buf.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/signals/t_sigsuspend.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svshm/svshm_xfr_reader.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating src/svsem/svsem_demo.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:37:32
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 37 |     or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/threads/thread_cancel.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:42:34
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 42 |     or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:45:33
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &mut THREAD_DIED }));
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 45 |     or_die(cond_signal(unsafe { &raw mut THREAD_DIED }));
[INFO] [stdout]    |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:65:18
[INFO] [stdout]    |
[INFO] [stdout] 65 |         unsafe { THREADS.push(info); }
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:77:36
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 77 |         or_die(mutex_lock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:39
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &raw mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:80:68
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                    ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 80 |             or_die(cond_wait(unsafe { &mut THREAD_DIED }, unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/thread_multijoin.rs:94:38
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &mut THREAD_MUTEX }));
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw mut` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 94 |         or_die(mutex_unlock(unsafe { &raw mut THREAD_MUTEX }));
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/time/calendar_time.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.49s
[INFO] [stderr] crater-edition-check: rlpi v0.1.0 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr]     Checking rlpi v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/ctype.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/fcntl.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | unsafe extern {
[INFO] [stdout]    |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/sys/time.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/unistd.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | unsafe extern {
[INFO] [stdout]    |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/time.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/libgen.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdio.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdlib.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/mqueue.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/inet.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | unsafe extern {
[INFO] [stdout]    |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/sig_receiver.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let cb = sig_handler as extern fn(c_int) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/nonreentrant.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/ctype.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/fcntl.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | unsafe extern {
[INFO] [stdout]    |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/sys/time.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/unistd.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | unsafe extern {
[INFO] [stdout]    |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/time.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/libgen.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdio.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/stdlib.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/mqueue.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]  --> src/libc/inet.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | unsafe extern {
[INFO] [stdout]   |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/libc/mod.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | unsafe extern {
[INFO] [stdout]    |        ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/sig_receiver.rs:65:29
[INFO] [stdout]    |
[INFO] [stdout] 65 |     let cb = sig_handler as extern fn(c_int) as *mut c_void as sighandler_t;
[INFO] [stdout]    |                             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]   --> src/signals/nonreentrant.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |     sa_sigaction: handler as extern fn(c_int) as *const c_void as sighandler_t,
[INFO] [stdout]    |                              ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_util.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     unsafe {
[INFO] [stdout]    |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 40 |         to_result(s, || unsafe { result.assume_init() }, "pthread_join")
[INFO] [stdout]    |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]   --> src/sockets/inet_sockets.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PassiveSocket {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     socket_desc: c_int,
[INFO] [stdout] 92 |     address: addrinfo
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rlpi` (lib) due to 3 previous errors; 15 warnings emitted
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/threads/thread_util.rs:40:25
[INFO] [stdout]    |
[INFO] [stdout] 37 |     unsafe {
[INFO] [stdout]    |     ------ because it's nested under this `unsafe` block
[INFO] [stdout] ...
[INFO] [stdout] 40 |         to_result(s, || unsafe { result.assume_init() }, "pthread_join")
[INFO] [stdout]    |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `address` is never read
[INFO] [stdout]   --> src/sockets/inet_sockets.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct PassiveSocket {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 91 |     socket_desc: c_int,
[INFO] [stdout] 92 |     address: addrinfo
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:17:13
[INFO] [stdout]    |
[INFO] [stdout] 17 |             MSG_BUF.clear();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |             MSG_BUF.insert_str(0, err_msg);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]   --> src/threads/strerror.rs:21:14
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &MSG_BUF }
[INFO] [stdout]    |              ^^^^^^^^ shared reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]    |
[INFO] [stdout] 21 |     unsafe { &raw const MSG_BUF }
[INFO] [stdout]    |               +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rlpi` (lib test) due to 3 previous errors; 15 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d", kill_on_drop: false }`
[INFO] [stdout] f387dc62a7e4fee9db53eb8e34298e2c58389c7afcd2f90830014e6f16ccbb1d
